home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Sprite 1984 - 1993
/
Sprite 1984 - 1993.iso
/
lib
/
tex
/
inputs
/
pslatex
/
lfonts.tex
< prev
next >
Wrap
Text File
|
1991-05-20
|
28KB
|
778 lines
% This file has been converted to use the PostScript fonts
% Graeme McKinstry October 1986
% Modified further by Mario Wolczko, April 1988 - Oct 1989
% File LFONTS - Version of 6 May 1986.
%
% This version of LFONTS.TEX is for the CMR fonts. It was converted
% from the AMR version by David Fuchs on 18 December 1985.
%
% This file needs to be customized for the fonts available at a particular
% site. There are three places where changes need to be made. They
% can be found by searching this file for the string FONT-CUSTOMIZING.
%
% FONT CONVENTIONS
%
% A TYPESTYLE COMMAND is something like \it that defines a type style.
% Each style command \xx is defined to be \protect\pxx, where
% \pxx is defined to choose the correct font for the current size.
% This allows style commands to appear in 'unsafe' arguments where
% protection is required.
%
% A SIZE COMMAND is something like \normalsize that defines a type size.
% It is defined by the document style. However, \normalsize is handled
% somewhat differently because it is called so often--e.g., on every
% page by the output routine. The document style defines \@normalsize
% instead of \normalsize.
%
% A ONE-SIZE typestyle is one that exists only in the \normalsize size.
%
% A FONT-SIZE COMMAND is one that defines \textfont, \scriptfont and
% \scriptscriptfont for the font families corresponding to preloaded fonts,
% as well as the typestyle commands for the preloaded fonts. Each
% font-size command has an associated @fontsize command, having the same
% name except for an '@' at the front. All font-size commands are defined
% in LFONTS. The naming convention is that a fifteenpt font has a font-size
% name \xvpt, and so on.
%
% Each size command \SIZE executes the command
% \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE
% which does the following.
% 0. Executes \@nomath\SIZE to issue warning if in math mode.
% 1. \let \@currsize = \SIZE
% 2. Sets \strutbox to a strut of height .7 * BASELINESKIP and
% depth .3 * BASELINESKIP
% 3. Sets \baselineskip to \baselinestretch * BASELINESKIP
% and
% 4. Calls \FONTSIZE
% 5. Executes the \@FONTSIZE command.
% It should then define all the typestyle commands not defined by the font-size
% command, except for the one-size type styles. A typestyle command for which
% the corresponding font exists but is not preloaded is defined to expand to a
% \@getfont command. A typestyle whose font does not exist is defined to
% expand to a \@subfont command.
%
% A one-size typestyle whose font is not preloaded is defined to expand to
% a \@onesizefont command.
%
% \em is defined to be \it inside an unslanted style and \rm inside a
% slanted style. An \em command in a section title will produce a \pem
% command in the table of contents.
%
% USES PS (PostScript) fonts
% this command is used when the user has asked for something that is
% unavailable in the PostScript fonts
\def\@PSignore#1{\@warning{\string#1 not supported in PS-LaTeX; ignoring it}}
\def\@PSsub#1#2{#2%
\@warning{\string#1 not supported in PS-LaTeX; substituting \string#2}}
% this is used if PS-LaTeX is built without CMSY, CMMI or LASY
\def\@PSnofont#1{\@warning{\string#1 requires extra fonts in PS-LaTeX}}
\def\em{\protect\pem{}}
\def\pem{\ifdim \fontdimen\@ne\font >\z@ \rm \else \it \fi}
% the following magic is used to ensure that all font styles in the
% normal size are loaded as soon as the job starts
\def\normalsize{\@normalsize\bf\sl\tt\sf\sc\rm
\global\let\normalsize\@@normalsize}
\def\@@normalsize{\ifx\@currsize\normalsize \rm \else \@normalsize\fi}
% \load{SIZE}{STYLE} : Solves anomaly of loaded-on-demand font
% used for first time in math mode. Give this command outside math
% mode, before formula using it for first time.
\def\load#1#2{\let\@tempa\@currsize \let\@currsize\relax #1#2\@tempa}
% \newfont{\CMD}{FONT} defines \CMD to be the font FONT.
% It is equivalent to \font \CMD = FONT
% \symbol{NUM} == \char NUM
\def\newfont#1#2{\@ifdefinable #1{\font #1=#2\relax}}
\def\symbol#1{\char #1\relax}
% \@getfont \STYLE \FAM \@FONTSIZE{LOADING.INFO}
% \STYLE = style command
% \FAM = a control sequence defined by \newfam\FAM
% \@FONTSIZE = the @fontsize command for the current size.
% LOADING.INFO = information needed to load the font--e.g.,
% cmtti10 \magstep 2
% Does the following, where \FONTNAME denotes a new unique, untypeable
% font name:
% 1. Executes \font \FONTNAME = LOADING.INFO
% 2. Appends '\textfont FAM \FONTNAME \def\STYLE{\fam \FAM \FONTNAME}'
% to the definition of \@FONTSIZE.
% 3. Executes \@FONTSIZE \STYLE.
%
% \@nohyphens\STYLE\@FONTSIZE
% Used right after \@getfont to set \hyphenchar of the new font to -1,
% thereby prohibiting hyphenation. It is used with \tt fonts.
% (\@nohyphens was added on 12/18/85)
%
% \@subfont \STYLE \REPSTYLE
% \STYLE, \REPSTYLE = type style commands.
% Types warning message and defines uses \REPSTYLE.
%
% \@onesizefont \STYLE {LOADING.INFO}
% Defines \STYLE to be a typestyle that exists only for the \normalsize
% size. It produces the font specified by LOADING.INFO
%
% \@addfontinfo\@FONTSIZE{DEFS}
% Expands DEFS and adds to the definition of \@FONTSIZE. Items that should
% not be expanded should be protected with \@prtct---except no protection
% is needed for '\def\foo', only for the contents of the definition.
%
% \@nomath\CS : Types a warning '\CS used in math mode' if encountered
% in math mode.
% Remove \outer from definition of \newfam
\def\newfam{\alloc@8\fam\chardef\sixt@@n}
\def\@setsize#1#2#3#4{\@nomath#1\let\@currsize#1\baselineskip
#2\setbox\strutbox\hbox{\vrule height.7\baselineskip
depth.3\baselineskip width\z@}\baselineskip\baselinestretch\baselineskip
\normalbaselineskip\baselineskip#3#4}
\newif\if@bold
\let\@prtct=\relax
\def\@addfontinfo#1#2{{\def\@prtct{\noexpand\@prtct\noexpand}\def\def{\noexpand
\def\noexpand}\xdef#1{#1#2}}}
\def\@getfont#1#2#3#4{\@ifundefined{\string #1\string #3}{\global\expandafter
\font \csname \string #1\string #3\endcsname #4\relax
\@addfontinfo#3{\textfont #2\csname \string #1\string #3\endcsname
\scriptfont #2\csname \string #1\string #3\endcsname
\scriptscriptfont #2\csname \string #1\string #3\endcsname
\def#1{\fam #2\csname\string #1\string #3\endcsname}}}{}#3#1}
\def\@nohyphens#1#2{\global\expandafter \hyphenchar\csname
\string #1\string #2\endcsname \m@ne}
\def\@subfont#1#2{\@warning{No \string#1\space typeface in
this size, using \string#2}#2}
\def\@onesizefont#1#2{\expandafter\newfam\csname fm\string#1\endcsname
\global\expandafter\font\csname ft\string#1\endcsname #2\relax
\gdef#1{\ifx \@currsize\normalsize \@ftfam#1\else
\@warning{Typeface \string#1\space available only in
\string\normalsize, using \string\rm}\gdef #1{\ifx \@currsize\normalsize
\textfont\@fontfam#1 \scriptfont\@fontfam#1 \scriptscriptfont
\@fontfam#1\@ftfam#1\else \rm\fi}#1\fi}#1}
\def\@ftfam#1{\fam\csname fm\string#1\endcsname\csname ft\string#1\endcsname}
\def\@nomath#1{\ifmmode \@warning{\string#1\space in math mode.}\fi}
\def\@nomathbold{\ifmmode \@warning{\string\mathbold\space in math mode.}\fi}
% The following definitions save token space. E.g., using \@height
% instead of height saves 5 tokens at the cost in time of one macro
% expansion.
\def\@height{height}
\def\@depth{depth}
\def\@width{width}
\def\@magscale#1{ scaled \magstep #1}
\def\@halfmag{ scaled \magstephalf}
\def\@ptscale#1{ scaled #100}
% FONT-CUSTOMIZING see contents of fntchoice.tex
\input fntchoice
% none of the CM fonts (except cmex10) are accessible unless the
% following are true
\newif\if@usecmsy \@usecmsytrue % is the CMSY font available
\newif\if@usecmmi \@usecmmitrue % is CMMI font available
% same for LaTeX symbols font
\newif\if@uselasy \@uselasytrue % is LASY font available
% There are no alternative choices for these fonts at the present
\def\@msyten{cmsy10}
\def\@mmiten{cmmi10}
\def\@lasyten{lasy10}
% \@font\NAME{LOADING.INFO}
% Defines \NAME so that when expanded for the first time it executes
% \global\font\NAME=LOADING.INFO \NAME
% This cannot be used for fonts that have characters referenced by
% \mathchardef, such as the Symbol, CMSY, CMMI, CMEX, and LASY fonts
\def\@font#1#2{\def#1{\global\font#1=#2#1}}
% \@ttfont
% same as \@font, but sets \hyphenchar to -1
\def\@ttfont#1#2{\def#1{\global\font#1=#2#1\hyphenchar#1=-1}}
% font loading commands for specific (unusual) fonts
\def\@loadcmsy#1#2{\if@usecmsy \font#1=#2 \skewchar#1='60 \fi}
\def\@loadcmmi#1#2{\if@usecmmi \font#1=#2 \skewchar#1='177 \fi}
\def\@loadsy#1#2{\font#1=#2 \skewchar#1='242 }
\def\@loadtt#1#2{\font#1=#2 \hyphenchar#1=-1 }
%% FONT-CUSTOMIZING: The following \font commands define the
%% preloaded LaTeX fonts. Font names should be changed to cause
%% different fonts to be loaded in place of these particular fonts.
%% \font commands can be replaced with \@font commands to reduce the
%% number of preloaded fonts.
% five point
\font\fivrm = \@rm\@ptscale5
\font\fivit = \@it\@ptscale5
\@loadsy\fivsy {\@sy\@ptscale5}
\@font\fivbf {\@bf\@ptscale5}
\@font\fivsl {\@sl\@ptscale5}
\@ttfont\fivtt {\@tt\@ptscale5}
\@font\fivsf {\@sf\@ptscale5}
\@font\fivsc {\@sc\@ptscale5}
\font\fivms = \@ms\@ptscale5
\@loadcmsy\fivcmsy{cmsy5}
\@loadcmmi\fivmi{cmmi5}
\font\fivly = lasy5
% six point
\font\sixrm = \@rm\@ptscale6
\font\sixit = \@it\@ptscale6
\@loadsy\sixsy {\@sy\@ptscale6}
\@font\sixbf {\@bf\@ptscale6}
\@font\sixsl {\@sl\@ptscale6}
\@ttfont\sixtt {\@tt\@ptscale6}
\@font\sixsf {\@sf\@ptscale6}
\@font\sixsc {\@sc\@ptscale6}
\font\sixms = \@ms\@ptscale6
\@loadcmsy\sixcmsy{cmsy6}
\@loadcmmi\sixmi{cmmi6}
\font\sixly = lasy6
% seven point
\font\sevrm = \@rm\@ptscale7
\font\sevit = \@it\@ptscale7
\@loadsy\sevsy {\@sy\@ptscale7}
\@font\sevbf {\@bf\@ptscale7}
\@font\sevsl {\@sl\@ptscale7}
\@ttfont\sevtt {\@tt\@ptscale7}
\@font\sevsf {\@sf\@ptscale7}
\@font\sevsc {\@sc\@ptscale7}
\font\sevms = \@ms\@ptscale7
\@loadcmsy\sevcmsy{cmsy7}
\@loadcmmi\sevmi{cmmi7}
\font\sevly = lasy7
% eight point
\font\egtrm = \@rm\@ptscale8
\font\egtit = \@it\@ptscale8
\@loadsy\egtsy {\@sy\@ptscale8}
\@font\egtbf {\@bf\@ptscale8}
\@font\egtsl {\@sl\@ptscale8}
\@ttfont\egttt {\@tt\@ptscale8}
\@font\egtsf {\@sf\@ptscale8}
\@font\egtsc {\@sc\@ptscale8}
\font\egtms = \@ms\@ptscale8
\@loadcmsy\egtcmsy{cmsy8}
\@loadcmmi\egtmi{cmmi8}
\font\egtly = lasy8
% nine point
\font\ninrm = \@rm\@ptscale9
\font\ninit = \@it\@ptscale9
\@loadsy\ninsy {\@sy\@ptscale9}
\font\ninbf = \@bf\@ptscale9
\@font\ninsl {\@sl\@ptscale9}
\@loadtt\nintt {\@tt\@ptscale9}
\@font\ninsf {\@sf\@ptscale9}
\@font\ninsc {\@sc\@ptscale9}
\font\ninms = \@ms\@ptscale9
\@loadcmsy\nincmsy{cmsy9}
\@loadcmmi\ninmi{cmmi9}
\font\ninly = lasy9
% ten point
\font\tenrm = \@rm\@magscale0
\font\tenit = \@it\@magscale0
\@loadsy\tensy {\@sy\@magscale0}
\font\tenbf = \@bf\@magscale0
\font\tensl = \@sl\@magscale0
\@loadtt\tentt {\@tt\@magscale0}
\font\tensf = \@sf\@magscale0
\font\tensc = \@sc\@magscale0
\font\tenms = \@ms\@magscale0
\@loadcmsy\tencmsy{\@msyten}
\@loadcmmi\tenmi{\@mmiten}
\font\tenly = \@lasyten
% eleven point
\font\elvrm = \@rm\@halfmag
\font\elvit = \@it\@halfmag
\@loadsy\elvsy {\@sy\@halfmag}
\font\elvbf = \@bf\@halfmag
\font\elvsl = \@sl\@halfmag
\@loadtt\elvtt {\@tt\@halfmag}
\font\elvsf = \@sf\@halfmag
\font\elvsc = \@sc\@halfmag
\font\elvms = \@ms\@halfmag
\@loadcmsy\elvcmsy{\@msyten\@halfmag}
\@loadcmmi\elvmi{\@mmiten\@halfmag}
\font\elvly = \@lasyten\@halfmag
% twelve point
\font\twlrm = \@rm\@magscale1
\font\twlit = \@it\@magscale1
\@loadsy\twlsy {\@sy\@magscale1}
\font\twlbf = \@bf\@magscale1
\font\twlsl = \@sl\@magscale1
\@loadtt\twltt {\@tt\@magscale1}
\font\twlsf = \@sf\@magscale1
\font\twlsc = \@sc\@magscale1
\font\twlms = \@ms\@magscale1
\@loadcmsy\twlcmsy{\@msyten\@magscale1}
\@loadcmmi\twlmi{cmmi12}
\font\twlly = \@lasyten\@magscale1
% fourteen point
\font\frtnrm = \@rm\@magscale2
\font\frtnit = \@it\@magscale2
\@loadsy\frtnsy{\@sy\@magscale2}
\font\frtnbf = \@bf\@magscale2
\@font\frtnsl {\@sl\@magscale2}
\@font\frtntt {\@tt\@magscale2}
\@font\frtnsf {\@sf\@magscale2}
\@font\frtnsc {\@sc\@magscale2}
\font\frtnms = \@ms\@magscale2
\@loadcmsy\frtncmsy{\@msyten\@magscale2}
\@loadcmmi\frtnmi{cmmi12\@magscale1}
\font\frtnly = \@lasyten\@magscale2
% seventeen point
\font\svtnrm = \@rm\@magscale3
\font\svtnit = \@it\@magscale3
\@loadsy\svtnsy{\@sy \@magscale3}
\font\svtnbf = \@bf\@magscale3
\@font\svtnsl {\@sl\@magscale3}
\@font\svtntt {\@tt\@magscale3}
\@font\svtnsf {\@sf\@magscale3}
\@font\svtnsc {\@sc\@magscale3}
\font\svtnms = \@ms\@magscale3
\@loadcmsy\svtncmsy{\@msyten\@magscale3}
\@loadcmmi\svtnmi{cmmi12\@magscale2}
\font\svtnly = \@lasyten\@magscale3
% twenty point
\font\twtyrm = \@rm\@magscale4
\font\twtyit = \@it\@magscale4
\@loadsy\twtysy{\@sy \@magscale4}
\@font\twtybf {\@bf\@magscale4}
\@font\twtysl {\@sl\@magscale4}
\@font\twtytt {\@tt\@magscale4}
\@font\twtysf {\@sf\@magscale4}
\@font\twtysc {\@sc\@magscale4}
\font\twtyms = \@ms\@magscale4
\@loadcmsy\twtycmsy{\@msyten \@magscale4}
\@loadcmmi\twtymi{\@mmiten \@magscale4}
\font\twtyly = \@lasyten \@magscale4
% twenty-five point
\font\twfvrm = \@rm\@magscale5
\font\twfvit = \@it\@magscale5
\@loadsy\twfvsy{\@sy \@magscale5}
\@font\twfvbf {\@bf\@magscale5}
\@font\twfvsl {\@sl\@magscale5}
\@font\twfvtt {\@tt\@magscale5}
\@font\twfvsf {\@sf\@magscale5}
\@font\twfvsc {\@sc\@magscale5}
\font\twfvms = \@ms\@magscale5
\@loadcmsy\twfvcmsy{\@msyten \@magscale5}
\@loadcmmi\twfvmi{\@mmiten \@magscale5}
\font\twfvly = \@lasyten\@magscale5
% Math extension
\font\tenex = cmex10
\if@uselasy
% line & circle fonts
\font\tenln = line10
\font\tenlnw = linew10
\font\tencirc = circle10
\font\tencircw = circlew10
% Change made 6 May 86: `\@warning' replaced by `\immediate\write 15'
% since it's not defined when lfonts.tex is read by lplain.tex.
%
\ifnum\fontdimen8\tenln=\fontdimen8\tencirc \else
\immediate\write 15{Incompatible thin line and circle fonts}\fi
\ifnum\fontdimen8\tenlnw=\fontdimen8\tencircw \else
\immediate\write 15{Incompatible thick line and circle fonts}\fi
\fi
% protected font names
\def\rm{\protect\prm}
\def\it{\protect\pit}
\def\bf{\protect\pbf}
\def\sl{\protect\psl}
\def\sf{\protect\psf}
\def\sc{\protect\psc}
\def\tt{\protect\ptt}
% families
\def\hexnumber@#1{\ifnum#1<10 \number#1\else
\ifnum#1=10 A\else\ifnum#1=11 B\else\ifnum#1=12 C\else
\ifnum#1=13 D\else\ifnum#1=14 E\else
\ifnum#1=15 F\fi\fi\fi\fi\fi\fi\fi}
% since math italic and text italic are the same, \itfam is not required
\let\itfam\@ne
\newfam\slfam % \sl is family 4
\newfam\bffam % \bf is family 5
\newfam\ttfam % \tt is family 6
\newfam\sffam % \sf is family 7
\newfam\scfam % \sc is family 8
\newfam\msfam % \ms is family 9 (slanted Symbol)
\edef\ms@{\hexnumber@\msfam}
\if@uselasy
\newfam\lyfam
\edef\lasy@{\hexnumber@\lyfam}
\fi
\if@usecmsy
\newfam\cmsyfam
\def\cal{\fam\cmsyfam}
\edef\cmsy@{\hexnumber@\cmsyfam}
\else
\def\cal{\@PSnofont\cal}
\fi
\if@usecmmi
\newfam\cmmifam
\edef\cmmi@{\hexnumber@\cmmifam}
\fi
\def\mit{\fam\msfam} % slanted uppercase Greek
\def\@setstrut{\setbox\strutbox=\hbox{\vrule \@height .7\baselineskip
\@depth .3\baselineskip \@width\z@}}
% no bold math available in PostScript
\def\boldmath{\@PSignore\boldmath}
\def\unboldmath{\@PSignore\unboldmath}
%% FONT-CUSTOMIZING: The commands \vpt, \vipt, ... , \xxvpt perform all
%% the declarations needed to change the type size to 5pt, 6pt, ... ,
%% 25pt. To see how this works, consider the definition of \ixpt,
%% which determines the fonts used in a 9pt type size. The command
%% \def\prm{\fam\rmfam\ninrm}
%% means that the \rm command causes the preloaded \ninrm font to
%% be used--this font was defined earlier with a \font\ninrm...
%% command. The command
%% \@setfam\rmfam\ninrm\sixrm\fivrm
%% tell TeX to use the \ninrm, \sixrm and \fivrm fonts for
%% text, script and scriptscript math size for the 9pt size.
%%
%% The command
%% \def\pbf{\@getfam\pbf\bffam\@ixpt\ninbf\sixbf\fivbf}
%% declares \bf to use either pre-loaded or loaded-on-demand
%% fonts--namely, the fonts \ninbf, \sixbf and \fivbf. Presumably,
%% they were earlier declared using the \font or \@font commands.
%%
%% If you decided that preloading the fonts for a bold, 9pt size was
%% unnecessary, then you would alter the declaration of \ninbf to use
%% \@font rather than \font.
%% Note that you can only do this for the \bf, \sl, \tt, \sf and \sc
%% families; the other fonts are used in math mode and must be
%% preloaded.
%%
%% The command
%% \def\ptt{\@subfont\tt\rm}
%% declares that the \tt font is unavailable in the 7pt size, so
%% the \rm font is used instead. (The substituted type style should
%% correspond to a preloaded size.)
% \@getfam\STYLE\FAM\SIZE\TFONT\SFONT\SSFONT\CMND
% Defines \def\STYLE{\fam\FAM\TFONT\CMND}
% Executes
% \fam\FAM
% \SSFONT\scriptscriptfont\FAM\SSFONT
% \SFONT\scriptfont\FAM\SFONT
% \TFONT\textfont\FAM\TFONT\CMND
% (the extra invocations of \SSFONT etc cause preloaded fonts to be
% loaded.)
% Tests to see if the unique name madee from \STYLE and \SIZE is
% defined. If not, defines it and adds the definition
% \def\STYLE{\fam\FAM\TFONT\CMND} \textfont\FAM\TFONT
% \scriptfont\FAM\SFONT \scriptscriptfont\FAM\SSFONT
% to the definition of \SIZE
\def\@getfam#1#2#3#4#5#6#7{%
\def#1{\fam#2#4#7}%
\fam#2\relax #6\scriptscriptfont#2#6%
#5\scriptfont#2#5\relax #4\textfont#2#4#7%
\@ifundefined{\string#1\string#3}{%
\global\expandafter\def\csname\string#1\string#3\endcsname{}%
\@addfontinfo#3{\def#1{\fam#2#4\@prtct#7}\textfont#2\noexpand#4%
\scriptfont#2\noexpand#5\scriptscriptfont#2\noexpand#6}}{}}
% \setfam\FAM\TFONT\SFONT\SSFONT
% set \TFONT, \SFONT and \SSFONT as the text, script and
% scriptscript fonts in family \FAM.
\def\@setfam#1#2#3#4{#2\textfont#1#2\relax #3\scriptfont#1#3\relax
#4\scriptscriptfont#1#4}
% These are constant throughout the life of LaTeX ... must not
% reassign to any of them anywhere.
\textfont\thr@@\tenex
\scriptfont\thr@@\tenex
\scriptscriptfont\thr@@\tenex
\def\vpt{%
\def\prm{\fam\z@\fivrm\@dononsf}\@setfam\z@\fivrm\fivrm\fivrm
\def\pit{\fam\@ne\fivit\@dononsf}\@setfam\@ne\fivit\fivit\fivit
\@setfam\tw@\fivsy\fivsy\fivsy
\def\pbf{\@getfam\pbf\bffam\@vpt\fivbf\fivbf\fivbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@vpt\fivsl\fivsl\fivsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@vpt\fivtt\fivtt\fivtt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@vpt\fivsf\fivsf\fivsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@vpt\fivsc\fivsc\fivsc\@dononsf}%
\@setfam\msfam\fivms\fivms\fivms
\@setfam\cmsyfam\fivcmsy\fivcmsy\fivcmsy
\@setfam\cmmifam\fivmi\fivmi\fivmi
\@setfam\lyfam\fivly\fivly\fivly
\@setstrut\rm}
\def\@vpt{}
\def\vipt{%
\def\prm{\fam\z@\sixrm\@dononsf}\@setfam\z@\sixrm\fivrm\fivrm
\def\pit{\fam\@ne\sixit\@dononsf}\@setfam\@ne\sixit\fivit\fivit
\@setfam\tw@\sixsy\fivsy\fivsy
\def\pbf{\@getfam\pbf\bffam\@vipt\sixbf\fivbf\fivbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@vipt\sixsl\sixsl\sixsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@vipt\sixtt\sixtt\sixtt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@vipt\sixsf\sixsf\sixsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@vipt\sixsc\sixsc\sixsc\@dononsf}%
\@setfam\msfam\sixms\fivms\fivms
\@setfam\cmsyfam\sixcmsy\fivcmsy\fivcmsy
\@setfam\cmmifam\sixmi\fivmi\fivmi
\@setfam\lyfam\sixly\fivly\fivly
\@setstrut\rm}
\def\@vipt{}
\def\viipt{%
\def\prm{\fam\z@\sevrm\@dononsf}\@setfam\z@\sevrm\fivrm\fivrm
\def\pit{\fam\@ne\sevit\@dononsf}\@setfam\@ne\sevit\fivit\fivit
\@setfam\tw@\sevsy\fivsy\fivsy
\def\pbf{\@getfam\pbf\bffam\@viipt\sevbf\fivbf\fivbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@viipt\sevsl\sevsl\sevsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@viipt\sevtt\sevtt\sevtt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@viipt\sevsf\sevsf\sevsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@viipt\sevsc\sevsc\sevsc\@dononsf}%
\@setfam\msfam\sevms\fivms\fivms
\@setfam\cmsyfam\sevcmsy\fivcmsy\fivcmsy
\@setfam\cmmifam\sevmi\fivmi\fivmi
\@setfam\lyfam\sevly\fivly\fivly
\@setstrut\rm}
\def\@viipt{}
\def\viiipt{%
\def\prm{\fam\z@\egtrm\@dononsf}\@setfam\z@\egtrm\sixrm\fivrm
\def\pit{\fam\@ne\egtit\@dononsf}\@setfam\@ne\egtit\sixit\fivit
\@setfam\tw@\egtsy\sixsy\fivsy
\def\pbf{\@getfam\pbf\bffam\@viiipt\egtbf\sixbf\fivbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@viiipt\egtsl\egtsl\egtsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@viiipt\egttt\egttt\egttt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@viiipt\egtsf\egtsf\egtsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@viiipt\egtsc\egtsc\egtsc\@dononsf}%
\@setfam\msfam\egtms\sixms\fivms
\@setfam\cmsyfam\egtcmsy\sixcmsy\fivcmsy
\@setfam\cmmifam\egtmi\sixmi\fivmi
\@setfam\lyfam\egtly\sixly\fivly
\@setstrut\rm}
\def\@viiipt{}
\def\ixpt{%
\def\prm{\fam\z@\ninrm\@dononsf}\@setfam\z@\ninrm\sixrm\fivrm
\def\pit{\fam\@ne\ninit\@dononsf}\@setfam\@ne\ninit\sixit\fivit
\@setfam\tw@\ninsy\sixsy\fivsy
\def\pbf{\@getfam\pbf\bffam\@ixpt\ninbf\sixbf\fivbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@ixpt\ninsl\ninsl\ninsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@ixpt\nintt\nintt\nintt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@ixpt\ninsf\ninsf\ninsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@ixpt\ninsc\ninsc\ninsc\@dononsf}%
\@setfam\msfam\ninms\sixms\fivms
\@setfam\cmsyfam\nincmsy\sixcmsy\fivcmsy
\@setfam\cmmifam\ninmi\sixmi\fivmi
\@setfam\lyfam\ninly\sixly\fivly
\@setstrut\rm}
\def\@ixpt{}
\def\xpt{%
\def\prm{\fam\z@\tenrm\@dononsf}\@setfam\z@\tenrm\sevrm\fivrm
\def\pit{\fam\@ne\tenit\@dononsf}\@setfam\@ne\tenit\sevit\fivit
\@setfam\tw@\tensy\sevsy\fivsy
\def\pbf{\@getfam\pbf\bffam\@xpt\tenbf\sevbf\fivbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@xpt\tensl\tensl\tensl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@xpt\tentt\tentt\tentt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@xpt\tensf\tensf\tensf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@xpt\tensc\tensc\tensc\@dononsf}%
\@setfam\msfam\tenms\sevms\fivms
\@setfam\cmsyfam\tencmsy\sevcmsy\fivcmsy
\@setfam\cmmifam\tenmi\sevmi\fivmi
\@setfam\lyfam\tenly\sevly\fivly
\@setstrut\rm}
\def\@xpt{}
\def\xipt{%
\def\prm{\fam\z@\elvrm\@dononsf}\@setfam\z@\elvrm\egtrm\sixrm
\def\pit{\fam\@ne\elvit\@dononsf}\@setfam\@ne\elvit\egtit\sixit
\@setfam\tw@\elvsy\egtsy\sixsy
\def\pbf{\@getfam\pbf\bffam\@xipt\elvbf\egtbf\sixbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@xipt\elvsl\elvsl\elvsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@xipt\elvtt\elvtt\elvtt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@xipt\elvsf\elvsf\elvsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@xipt\elvsc\elvsc\elvsc\@dononsf}%
\@setfam\msfam\elvms\egtms\sixms
\@setfam\cmsyfam\elvcmsy\egtcmsy\sixcmsy
\@setfam\cmmifam\elvmi\egtmi\sixmi
\@setfam\lyfam\elvly\egtly\sixly
\@setstrut\rm}
\def\@xipt{}
\def\xiipt{%
\def\prm{\fam\z@\twlrm\@dononsf}\@setfam\z@\twlrm\egtrm\sixrm
\def\pit{\fam\@ne\twlit\@dononsf}\@setfam\@ne\twlit\egtit\sixit
\@setfam\tw@\twlsy\egtsy\sixsy
\def\pbf{\@getfam\pbf\bffam\@xiipt\twlbf\egtbf\sixbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@xiipt\twlsl\twlsl\twlsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@xiipt\twltt\twltt\twltt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@xiipt\twlsf\twlsf\twlsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@xiipt\twlsc\twlsc\twlsc\@dononsf}%
\@setfam\msfam\twlms\egtms\sixms
\@setfam\cmsyfam\twlcmsy\egtcmsy\sixcmsy
\@setfam\cmmifam\twlmi\egtmi\sixmi
\@setfam\lyfam\twlly\egtly\sixly
\@setstrut\rm}
\def\@xiipt{}
\def\xivpt{%
\def\prm{\fam\z@\frtnrm\@dononsf}\@setfam\z@\frtnrm\tenrm\sevrm
\def\pit{\fam\@ne\frtnit\@dononsf}\@setfam\@ne\frtnit\tenit\sevit
\@setfam\tw@\frtnsy\tensy\sevsy
\def\pbf{\@getfam\pbf\bffam\@xivpt\frtnbf\tenbf\sevbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@xivpt\frtnsl\frtnsl\frtnsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@xivpt\frtntt\frtntt\frtntt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@xivpt\frtnsf\frtnsf\frtnsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@xivpt\frtnsc\frtnsc\frtnsc\@dononsf}%
\@setfam\msfam\frtnms\tenms\sevms
\@setfam\cmsyfam\frtncmsy\tencmsy\sevcmsy
\@setfam\cmmifam\frtnmi\tenmi\sevmi
\@setfam\lyfam\frtnly\tenly\sevly
\@setstrut\rm}
\def\@xivpt{}
\def\xviipt{%
\def\prm{\fam\z@\svtnrm\@dononsf}\@setfam\z@\svtnrm\twlrm\tenrm
\def\pit{\fam\@ne\svtnit\@dononsf}\@setfam\@ne\svtnit\twlit\tenit
\@setfam\tw@\svtnsy\twlsy\tensy
\def\pbf{\@getfam\pbf\bffam\@xviipt\svtnbf\twlbf\tenbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@xviipt\svtnsl\svtnsl\svtnsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@xviipt\svtntt\svtntt\svtntt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@xviipt\svtnsf\svtnsf\svtnsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@xviipt\svtnsc\svtnsc\svtnsc\@dononsf}%
\@setfam\msfam\svtnms\twlms\tenms
\@setfam\cmsyfam\svtncmsy\twlcmsy\tencmsy
\@setfam\cmmifam\svtnmi\twlmi\tenmi
\@setfam\lyfam\svtnly\twlly\tenly
\@setstrut\rm}
\def\@xviipt{}
\def\xxpt{%
\def\prm{\fam\z@\twtyrm\@dononsf}\@setfam\z@\twtyrm\frtnrm\twlrm
\def\pit{\fam\@ne\twtyit\@dononsf}\@setfam\@ne\twtyit\frtnit\twlit
\@setfam\tw@\twtysy\frtnsy\twlsy
\def\pbf{\@getfam\pbf\bffam\@xxpt\twtybf\frtnbf\twlbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@xxpt\twtysl\twtysl\twtysl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@xxpt\twtytt\twtytt\twtytt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@xxpt\twtysf\twtysf\twtysf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@xxpt\twtysc\twtysc\twtysc\@dononsf}%
\@setfam\msfam\twtyms\frtnms\twlms
\@setfam\cmsyfam\twtycmsy\frtncmsy\twlcmsy
\@setfam\cmmifam\twtymi\frtnmi\twlmi
\@setfam\lyfam\twtyly\frtnly\twlly
\@setstrut\rm}
\def\@xxpt{}
\def\xxvpt{%
\def\prm{\fam\z@\twfvrm\@dononsf}\@setfam\z@\twfvrm\svtnrm\svtnrm
\def\pit{\fam\@ne\twfvit\@dononsf}\@setfam\@ne\twfvit\svtnit\svtnit
\@setfam\tw@\twfvsy\svtnsy\svtnsy
\def\pbf{\@getfam\pbf\bffam\@xxvpt\twfvbf\svtnbf\svtnbf\@dononsf}%
\def\psl{\@getfam\psl\slfam\@xxvpt\twfvsl\twfvsl\twfvsl\@dononsf}%
\def\ptt{\@getfam\ptt\ttfam\@xxvpt\twfvtt\twfvtt\twfvtt\@dononsf}%
\def\psf{\@getfam\psf\sffam\@xxvpt\twfvsf\twfvsf\twfvsf\@dosfchars}%
\def\psc{\@getfam\psc\scfam\@xxvpt\twfvsc\twfvsc\twfvsc\@dononsf}%
\@setfam\msfam\twfvms\svtnms\svtnms
\@setfam\cmsyfam\twfvcmsy\svtncmsy\svtncmsy
\@setfam\cmmifam\twfvmi\svtnmi\svtnmi
\@setfam\lyfam\twfvly\svtnly\svtnly
\@setstrut\rm}
\def\@xxvpt{}
% SPECIAL LaTeX character definitions
% Definitions of math operators added by LaTeX
\if@uselasy
\mathchardef\mho"0\lasy@30
\mathchardef\Join"3\lasy@31
\mathchardef\Box"0\lasy@32
\mathchardef\Diamond"0\lasy@33
\mathchardef\leadsto"3\lasy@3B
\mathchardef\sqsubset"3\lasy@3C
\mathchardef\sqsupset"3\lasy@3D
\else
\def\mho{\@PSnofont\mho}
\def\Join{\@PSnofont\Join}
\def\Box{\@PSnofont\Box}
\def\Diamond{\@PSnofont\Diamond}
\def\leadsto{\@PSnofont\leadsto}
\def\sqsubset{\@PSnofont\sqsubset}
\def\sqsupset{\@PSnofont\sqsupset}
\fi
\def\lhd{\mathbin{< \hbox to -.43em{}\hbox{\vrule
\@width .065em \@height .55em \@depth .05em}\hbox to .2em{}}}
\def\rhd{\mathbin{\hbox to .3em{}\hbox{\vrule \@width .065em \@height
.55em \@depth .05em}\hbox to -.43em{}>}}
\def\unlhd{\mathbin{\leq \hbox to -.43em{}\hbox
{\vrule \@width .065em \@height .63em \@depth -.08em}\hbox to .2em{}}}
\def\unrhd{\mathbin{ \hbox to .3em{}\hbox
{\vrule \@width .065em \@height .63em \@depth -.08em}\hbox to -.43em{}\geq}}
% The dollar sign is in the same place in all the PostScript fonts
\def\${{\char`\$}}
% Definition of pound sterling sign.
\def\pounds{{\it \char"A3}}
% Definition of \copyright changed so it works in other type styles,
% and so it is robust
\def\copyright{\protect\pcopyright}
\def\registered{\protect\pregistered}
\def\trademark{\protect\ptrademark}
% see pslplain.tex for definitions of \pcopyright, \pregistered, \ptrademark
% provide the correct f when a font change takes place in mathmode
\def\@fixf{\ifmmode\mathcode`\f="7166\relax\fi}